package com.fm.base.json;

import java.util.List;

public interface JsonArray extends JsonStructure, List<JsonValue> {
	boolean add(String string);

	boolean add(Number number);

	boolean add(boolean b);

	default JsonArray append(JsonValue val) {
		add(val);
		return this;
	}

	default String getString(int i) {
		JsonValue val = get(i);
		return val == null ? null : val.toString();
	}

	default JsonArray getJsonArray(int i) {
		return (JsonArray) get(i);
	}

	default JsonObject getJsonObject(int i) {
		return (JsonObject) get(i);
	}

	@SuppressWarnings("unchecked")
	default <T> List<T> asList(Class<T> clazz) {
		return (List<T>) this;
	}
}
